SCOM API package offers modules for accessing COMAR over D-Bus without pain and 
common methods/classes for SCOM scripts.

Here are some examples for accessing SCOM:

    import scom
    link = scom.Link()

    # Localize strings
    link.setLocale()

    # Never use authentication agent (GUI)
    link.useAgent(False)

    # Get a list of packages that provide system.service method
    packages = list(link.System.Service)

    # Start a service
    link.System.Service["kdebase"].start()

    # Stop all services and ignore replies from packages.
    link.System.Service.stop(quiet=True)

Asynchronous calls:

    import gobject
    import dbus.mainloop.glib
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
    mainloop = gobject.MainLoop()

    import scom
    link = scom.Link()

    # Localize strings
    link.setLocale()

    # Use authentication agent (GUI)
    link.useAgent()

    # Make an asynchronous call to get service information
    def handler(package, exception, result):
        if exception:
            print ("%s error: %s" % (package, exception))
        else:
            print ("%s result: %s" % (package, result))
    link.System.Service.info(async=handler)

    mainloop.run()

Connecting SCOM service on alternate destination:

    import scom
    link = scom.Link(alternate=True)

This will simply try to connect tr.org.pardus.scom2 instead 
of tr.org.pardus.scom

Connecting to alternative DBus server:

    import scom
    link = scom.Link(socket="/mnt/target/var/run/dbus/system_bus_socket")
